#ifndef OCTREE_H
#define OCTREE_H

#include <iostream>

#include <torch/extension.h>
#include <tuple>
#include <cstdio>
#include <string>

namespace OCTREE {

std::tuple<int, torch::Tensor, torch::Tensor, torch::Tensor>
CreateOctree(const torch::Tensor& points, const torch::Tensor& xyz_min, const torch::Tensor& xyz_max);

torch::Tensor QueryGrid(const torch::Tensor& points, const torch::Tensor& xyz_mins, const torch::Tensor& xyz_maxs, const torch::Tensor& sons, const torch::Tensor& is_leaf_nodes);

} // namespace OCTREE


#endif